package com.project.mapper;

import com.project.bean.StudentBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IStudentMapper {
    /**
     * 按房间ID查询学生集合，同时包含学生所在班级名称
     * @param roomId 房间ID
     * @return 学生集合
     */
    public List<StudentBean> findByRoom(int roomId);
    /**
     * 添加学生
     * @param studentBean 学生对象
     */
    public void addStudent(StudentBean studentBean);

    /**
     * 按房间编号统计学生人数
     * @param roomId 房间id
     * @return 该房间所住人数
     */
    public int countByRoomId(int roomId);

    /**
     * 按班级编号统计学生人数
     * @param classId 班级id
     * @return 该班级学生人数
     */
    public int countByClass(@Param("id") int classId);

    /**
     * 根据学生id退房
     * @param id 学生id
     */
    public void delStudent(int id);

    /**
     * 根据学生id修改房间
     * @param id 换房学生id
     * @param roomId 要换的房间id
     */
    public void update(@Param("id") int id,@Param("roomId") int roomId);

    /**
     * 按学生id查询详情信息，同时查询班级名称和房间地址
     * @param id 学生id
     * @return 学生对象
     */
    public StudentBean findById(int id);

    /**
     * 动态条件查询学生信息，同时查询班级名称，和房间地址
     * @param name 学生姓名
     * @param stuClass 班级
     * @param stuRoom 学生房间地址
     * @return 学生集合
     */
    public List<StudentBean> findByItem(@Param("name") String name,
           @Param("stuClass") String stuClass, @Param("stuRoom") String stuRoom);
}
